Numerous data communication systems have been proposed for a wide variety of different applications, for example:
U.S. Pat. No. 4,317,957, issued to Sendrow on Mar. 2, 1982, discloses a system for protecting transactions and providing authentication of users in an on-line system for automatic tellers. A Personal Identification Number (PIN) which is concatenated with an anti-counterfeiting code, a Personal Identification Number (PIN) and a time stamp are used to validate automatic teller transactions.
U.S. Pat. Nos. 4,454,508 and 4,459,588, issued to Grow on June 12, 1984 and July 10, 1984, respectively, disclose timed token ring protocols. Any station can transmit information upon the receipt of the token if the time since the previous receipt of a write token is less than the unused amount of capacity left on the ring.
U.S. Pat. No. 4,569,042, issued to Larson on Feb. 4, 1986, discloses a data packet switching network in which continuity packets bearing time stamps are employed to determine call path transit time delay.
U.S. Pat. No. 3,587,044, issued to Jenkis on June 22, 1971, discloses a system for the transfer of digital communication data through a communication medium having a significant delay. The disclosed system has means for interlocking the data transfers to assure accurate data transmission and receipt.
U.S. Pat. No. 4,538,147, issued to Grow on Aug. 27, 1985, discloses a method of allocating available bandwidth between a plurality of stations which are configured in a write-controlled loop communication network.
U.S. Pat. No. 4,587,650, issued to Bell on May 6, 1987, discloses a method of simultaneously transmitting isochronous and non-isochronous data on a local area network through the use of a unique signal pattern.
U.S. Pat. No. 4,661,952, issued to von Sichart et al on Apr. 28, 1987, discloses a method of transmitting data on a telecommunications exchange via a ring line system which allows information items to be transmitted in periodically recurring pulse frames.
U.S. Pat. No. 4,663,748, issued to Karbowiak et al on May 5, 1987, discloses a communication system suitable for use as a local are network (LAN). The Karbowiak et al system has a network comprised of a plurality of nodes such that the system is capable of reconfiguring itself after node failure to minimize system disruption.
U.S. Pat. No. 3,387,268, issued to Epstein on June 4, 1968, discloses remotely locatable apparatus which receives a continuous stream of coded alpha numeric data from a central station for the monitoring of stock trading transactions.
U.S. Pat. No. 4,644,542, issued to Aghili et al on Feb. 17, 1987, discloses a method for the reliable broadcasting of information in a distributed network, such that, despite the presence of faulty processors in the system, the fault-free processors of the system can still obtain consistent views of the information which is available on the system.
U.S. Pat. No. 4,569,015, issued to Dolev et al on Feb. 4, 1986, discloses a method for reliably achieving agreement between multiple processors, by having each processor add a distinctive unforgeable signature to a message contents as the message is passed on.
U.S. Pat. No. 4,418,384, issued to Holtey et al on Nov. 29, 1983, discloses a communication subsystem which automatically aborts a sequence of bits when the subsystem senses that it is not receiving data from a microprocessor fast enough to maintain synchronous transmission over the communication line.
U.S. Pat. No. 4,325,120, issued to Colley et al on Apr. 13, 1982, discloses an elaborate data processing system which has processors which recognize two basic types of objects (i.e., an object being defined as a representation of related information maintained in contiguously-addressed set of memory locations). The first type of object contains ordinary data, while the second type of object contains information for locating and defining the extent of access to object associated with that access descriptor.
U.S. Pat. No. 4,354,225, issued to Friedler et al on Oct. 12, 1982 discloses a data processing system having a plurality of intercoupled processors working in conjunction with an intelligent main memory system.
U.S. Pat. No. 4,276,594, issued to Morley on June 30, 1981, discloses an elaborate digital computer and associated method steps.
In the world of data communications, there exists a need for generic data communication system and method having the ability to simultaneously satisfy a number of important requirements which are critical in many data communication applications. More particularly, there often exists a need for a data communication system which can provide for the regular and very high performance delivery of updated data to an unlimited number of receiver installations. In many of these environments, respective receivers are not interested in all the data which is available but, instead, are interested only in selected data needed to perform the receiver's intended function. Furthermore, it is often highly critical that the data delivery be reliable, and that the data communication system have a facility which can provide a data guarantee. A number of different approaches, which attempt to provide the above requirements, are discussed below.
More particularly, there are several data communication approaches which have been used to provide selected data to selected receivers.
In a first approach, the delivery of selected data to selected receivers is performed by the data transmission device or by an intermediate device at some intermediate point along the communication network. More particularly, in implementing such an approach, a data source device or communication node device would apply data management routines to the raw body of data, and then selectively channel data to respective receivers along the communications network. The selective channeling of the selected data can be performed using either time-multiplexing by dividing the available broadcast time of the communication network, or space-multiplexing by dividing the communication network into respective communication links.
Such an approach was found to be disadvantageous in terms of data delay, because respective portions of the data delivery device (i.e., data source or communication node device) operating time must be dedicated solely to satisfying the need to select data for the respective receivers. Rather than obtaining swift receipt of the data from the data collection point, each respective receiver has to wait in turn while the delivery device performs a number of data management and selective channeling routines. In effect, it can be seen that each respective receiver suffers a cumulative data delay penalty due to other receivers on the system. As the number of respective receivers which a delivery device has to service increases, data delay increases proportionally.
In a second approach, the selective delivery of data is provided by an intermediate file server which serves as a data library by receiving data transmissions from a data source and maintaining updated tables of data. The respective receivers must make individual queries to the file server as to the data of interest. The file server handles queries in the order of receipt by checking the status of the selected data in question, and forwarding the status to the requesting receiver.
This second approach has also been found to induce data delay for reasons which are similar to the above. A respective portion of file server operating time must be dedicated solely to the answering of each individual request. Rather than obtaining swift receipt of the select data, each respective receiver must wait in turn for the answer to its request. As the number of queries handled by a file server increases, data delay increases proportionally.
In analyzing the above two approaches, it can be seen that each of the receivers suffers a data delay penalty due to the presence of other devices on the data communication system. More particularly, it can be seen that a tremendous amount of delay time suffered by each receiver is caused by time used to selectively manage, channel, or answer the data requests of the other receivers.
Turning now to providing a data guarantee requirement in a data communication system, there are several approaches which can be used to check whether all data has been received by a receiver.
One approach is to have each receiver, upon receipt of data from the data source, send an acknowledgement back to the data source. The data source monitors the acknowledgements from the respective receivers, and in the event of a failure, retransmits the data to the respective receiver or otherwise informs the receiver of the data failure. This approach is disadvantageous in several respects.
First, important communication medium resources (i.e., transmission bandwidth or transmission time) are being absorbed through the use of the communication medium to send acknowledgements, and/or to transmit a duplicate copy of the failed data or a data failure warning. Rather than being able to devote a maximum amount of the communication medium resources to support a continuous transmission of updated data, a percentage must be dedicated to the acknowledgement mechanism. As the number of respective receivers sending acknowledgements increases, more and more of the communication medium is used, resulting in a proportional increase in data delay.
A second and more important disadvantage using the acknowledgement scheme is that each receiver performs only an echo function (i.e., echoing an acknowledgement of receipt to the data source), and does not participate in the determination of a failure in the data receipt. In the event of an interruption which disturbs data delivery, a receive will continue to operate on the assumption that it has received the most recent data, until such a time when the data source informs it otherwise. If a failure in the communication link has isolated the receiver from the data source, the notification of a failure from the data source will never arrive.
Another approach which can be used to provide data guarantee is to perform some sort of data comparison which can be performed at at least two different locations, i.e., at the the point of data transmission or the point of data receipt.
If the comparison is to be performed at the point of data transmission, each receiver must echo the data back to the data source in a manner similar to the acknowledgement routine. Although this method provides a higher degree of data guarantee than echoing just an acknowledgement (i.e., via a one-to-one data comparison), this approach is still deficient in the same manner as the acknowledgement routine.
The arrangement of having a data comparison performed at the point of receipt provides advantages over the above approach.
In utilizing this type of arrangement, the communications system must incorporate some sort of routine whereby each receiver is able to obtain two independent copies of the data which can be compared. This can be accomplished by the simultaneous transmission of the data along parallel communication paths or repeated transmissions of the data along a single communication path. Although each of the receivers is now able to make a determination of a data failure at the time it occurs thus participating in the data guarantee routine, this approach also has disadvantages.
More specifically, the use of parallel paths to provide dual copies of the data is disadvantageous, because a dual expenditure is incurred in the development and maintenance of two communication paths. The use of repeated transmissions to provide dual copies is disadvantageous because transmission medium resources (i.e., transmission bandwidth or transmission time) are absorbed by the retransmission process. As described above, this prevents maximum use of transmission resources to support a continuous transmission of updated data, thus resulting in data delay. In addition to the above disadvantages, both arrangements have a more important disadvantage, in that, if there is a long-term failure in the single transmission path used with a retransmission approach, or if there are simultaneous failures in the parallel transmission paths used in a parallel transmission approach, the isolated receiver will not receive either copy of the data and, hence, will not know that data has been missed.
In many data communication systems, the data source means is heavily involved in the data recovery process. In these types of systems, an individual receiver with missing data initiates a direct communication with the data source along the data communication network in order to request a copy of any data which has been missed. In order for the data source to provide the data guarantee, the data source then must retransmit the data along the data communication network. Such an approach has a major disadvantage.
More specifically, important communication medium resources (i.e., transmission bandwidth or transmission time) are being absorbed by the use of the communications medium to provide the data guarantee. Rather than being able to devote a maximum amount of the medium resources to support a continuous transmission of updated data, a percentage of the resources must be dedicated to the data guarantee. As the number of occurrences of data recovery increases, more and more of the communications medium is used, resulting in a proportional increase in data delay.
Because of the above disadvantages and shortcomings, there still exists a need for a system and method which provide for the widespread, timely and reliable distribution of data to an unlimited number of remote receiver installations, while at the same time, providing for the delivery of data with minimum delay, and for an arrangement whereby the reliable receipt of data at each receiver installation can be guaranteed.